﻿using System;
using System.Collections.Generic;
using HawaiRestaurant.Models.DataContext;
using HawaiRestaurant.Models.Entities;

namespace HawaiRestaurant.Models.Repositories
{
    public interface IRepository
    {
        // User
        IEnumerable<UserEntities> Login(User user);

        // Items (Food and Drink)
        IEnumerable<ItemEntities> GetFavorite(int number = 3);
        IEnumerable<ItemEntities> GetNew(int number = 3);

        IEnumerable<FoodEntities> GetFoodDetails(int foodId);
        IEnumerable<DrinkEntities> GetDrinkDetails(int drinkId);

        IEnumerable<ItemTypeEntities> GetCategory();

        // Document
        IEnumerable<OrderPartyEntities> GetOrderParty(int contractId);
        string GetOrderPartyConfirm(int contractId);
        IEnumerable<SaleReportEntities> GetSaleReport(); 
        IEnumerable<SaleReportEntities> GetSaleReport(DateTime fromDate,DateTime toDate);
        IEnumerable<OrderReportEntities> GetOrderReport(DateTime fromDate, DateTime toDate);
        IEnumerable<ReceiptEntities> GetReceipt(int contract);
        string OrderReport(DateTime fromDate, DateTime toDate);
        string OrderSummaryReport(string[] entities);

        int CreateContract(Contract contract);

        bool InsertToContractFood(Contract_Food contract);
        bool InsertToContractDrink(Contract_Drink drink);
    }
}